Early Packet Discard (EPD) and Partial Packet Discard (PPD) when used in conjunction with per VC queuing have proved to be an extremely effective method for providing congestion control in an ATM network while maximizing users' goodput. In order to provide for congestion control, an ATM switch will begin to discard cells when its cell buffers begin to fill past configured thresholds. Without EPD/PPD, an ATM switch might discard N cells with each cell belonging to a different user packet; this means it has effectively discarded N user packets, all of which will have to be retransmitted. With EPD/PPD, an ATM switch will only discard cells that belong to the same packets; i.e., the unit of discard is packets rather than cells. This minimizes the number of user packets that are discarded.
Unfortunately, the EPD/PPD only works for AAL5, since it uses the End of Message (EOM) bit in the ATM header. This means that in order to perform EPD/PPD, an ATM switch must have awareness of individual VCs so that it knows which VCs are using AAL5. This can cause scaling problems for ATM switches in the core of a large ATM network, because they will tremendous numbers of VCs transiting them. In addition to having to maintain state for a large number of VCs, these core ATM switches will have to process the signaling messages for all of these VCs, which puts a large burden on the processors in these switches.
Ideally, these core switches would have only VP awareness, so that they wouldn't have to maintain per VC state or process per VC signaling messages, while at the same time be capable of performing EPD/PPD. The present invention solves this problem.